
public class C {

	void foo() {
		switch (a + b + c /* + d */
				+ e + f) {
			case 1 , 2 , 99999 , 5 , 6 :
				method1();
				break;
			case 999 , 998 , 997 :
			case 996 , 995 , //
			994 :
				method2();
			default:
				method3();
		}

		switch ("a" + "b" + "c" //
				+ something) {
			case "abc1" -> System.out.println("1");
			case "abc2" ,
			/* ??? */ "abc3" , "abc4" -> System.out.println("234");
			case "abc5" , "abc6" -> {
			}
			case "abc7" -> {
				System.out.println("7");
				return;
			}
			default -> System.out.println("?");
		}

		int value = switch (ABC) {
			case A :
				yield 1;
			case B :
				System.out.println("!!!");
				return;
			case BB :
				;
			case C , D , E , F , G :
			case H , I , J : {
				System.out.println("@@@");
				yield 3454366;
			}
			default:
				yield 6;
		};

		Object value2 = switch (a.b.c.d(e.f.g.h())) {
			case a -> {
				System.out.println("aaaaaaa");
				yield "";
			}
			case b + c , d.e , f("aaaaaaaaaaaa"//
					+ //
					"bbbbbbbbb"//
			) , (33) , aaa = bbb + ccc , new int[] { 1, 2, aaa } , AAA::BBB -> (Runnable) () -> f();
			// $$$$
			case new Object() {
				String toString() {
					return "";
				}
			} -> ABCD;
			case null -> {
				return null;
			}
			case something -> //
				null;
			default -> throw new RuntimeException("unsupported");
		};
	}
}
